package com.kefu.call.vo;

import cn.hutool.core.bean.BeanUtil;
import com.kefu.call.model.CallSetUp;
import com.kefu.common.vo.AbstractUpdateVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import javax.validation.constraints.NotEmpty;

@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@ApiModel(description = "呼叫中心通话设置")
public class CallSetUpUpdateVo extends AbstractUpdateVo<CallSetUp, String> {
    /**
     * 主键
     */
    @NotEmpty
    @ApiModelProperty(name = "id", value = "主键")
    private String id;

    /**
     * 话后整理
     */
    @ApiModelProperty(value = "话后整理，0=否，1=是")
    private Integer autoReady;

    /**
     * 就绪时长
     */
    @ApiModelProperty(value = "就绪时长，毫秒")
    private Integer autoReadyTime;

    /**
     * 话后整理
     */
    @ApiModelProperty(value = "是否开启未接锁定坐席，0=否，1=是")
    private Integer lockUser;

    /**
     * 话后整理
     */
    @ApiModelProperty(value = "多少次之后锁定坐席")
    private Integer lockUserNum;

    /**
     * 是否callcenter呼叫超时时间
     */
    @ApiModelProperty(value = "是否callcenter呼叫超时时间0=否，1=是")
    private Integer callOut;

    /**
     * callcenter呼叫超时时间
     */
    @ApiModelProperty(value = "callcenter呼叫超时时间 ，如果这个参数不为空，就已这个为主, 单位：秒")
    private Integer callTimeOut;

    /**
     * 是否开启
     */
    @ApiModelProperty(value = "是否开启，1=开启，0=关闭")
    private Integer tierRuleWait;

    /**
     * 等待多长时间再将呼叫分配给下一坐席，单位秒
     */
    @ApiModelProperty(value = "等待多长时间再将呼叫分配给下一坐席，单位秒")
    private Integer tierRuleWaitSecond;

    /**
     * 是否开启ivr录音
     */
    @ApiModelProperty(value = "是否开启ivr录音0=关闭，1=开启", allowableValues = "0, 1")
    private Integer isOpenIvrRecord;

    @Override
    public CallSetUp convert() {
        CallSetUp info = BeanUtil.toBean(this, CallSetUp.class);
        info.setMaxWaitTimeWithNoAgent(0);
        return info;
    }
}
